package com.usdt.system.service.cp;

import java.util.List;

import com.usdt.common.core.domain.OssPolicyResult;
import com.usdt.common.core.domain.entity.SysFile;
import com.usdt.system.domain.req.DownloadFileVo;
import com.usdt.system.domain.resp.OssFileVo;

/**
 * oss上传管理Service Created by macro on 2018/5/17.
 */
public interface IOssService {
	/**
	 * oss上传策略生成
	 */
	OssPolicyResult policy();

	/**
	 * 上传回调
	 * @param fileInfo
	 * @return
	 */
	SysFile uploadCallback(SysFile fileInfo);

	/**
	 * 获得授权下载链接
	 * @param fileKey
	 * @return
	 */
	String getDownloadUrl(String fileKey);
	
	/**
	 * 获得授权下载链接
	 *
	 * @param fileKey
	 * @param fileName 链接在浏览器下载时 显示的文件名称 如果没指定则会搜数据库
	 * @return
	 */
	String getDownloadUrl(String fileKey, String fileName);

	/**
	 * 获得授权下载链接
	 * @param key
	 * @param fileName 链接在浏览器下载时 显示的文件名称 如果没指定则会搜数据库
	 * @param isPreview 是否在线预览
	 * @return
	 */
	String getDownloadUrl(String key, String fileName, Integer isPreview);
	
	/**
     * 查询文件信息并附带 时效性的url
     *
     * @param keys
     * @return
     */
    public List<OssFileVo> queryFilesWithUrl(List<String> keys);

    /**
     * 批量获得 文件信息（附带下载链接）
     *
     * @param keys
     * @return
     */
    public List<OssFileVo> getDownloadUrls(List<DownloadFileVo> keys);
    
    /**
	 * 下载附件到本地
	 * @param fileKey
	 * @param fileName
	 * @param downloadPath
	 * @return
	 */
	String download(String fileKey,String downloadPath);

	
}
